How to // Comment
Use a BLTouch // Utiliser un BLTouch

Ender3Pro

[Ender3Pro] Use a BLTouch



- Firmware update
I use https://github.com/steenerson/Marlin_SKR_E3_Mini_12_512K/tree/bugfix-2.0.x-bltouch version as base

/!\ Depends on your probe placement, you have to correctly update your edge margin!

  • Add just after "#define NOZZLE_TO_PROBE_OFFSET" line:
  • constexpr int nozzle_to_probe_offset[] = NOZZLE_TO_PROBE_OFFSET;
  • #define PROBE_X_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[0]
  • #define PROBE_Y_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[1]
  • Sensor at the back-right:
  • #define MIN_PROBE_EDGE_LEFT abs(PROBE_X_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(PROBE_Y_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(MIN_PROBE_EDGE)
  • Sensor at the back-left:
  • #define MIN_PROBE_EDGE_LEFT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(PROBE_X_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(PROBE_Y_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(MIN_PROBE_EDGE)
  • Sensor at the front-left:
  • #define MIN_PROBE_EDGE_LEFT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(PROBE_X_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(PROBE_Y_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • Sensor at the front-right:
  • #define MIN_PROBE_EDGE_LEFT abs(PROBE_X_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(PROBE_Y_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • -> Make probing over maximum bed surface

- GCode Console
As Cura 3.x has not more consol to be able to check to return of your command, you should use Pronterface (free and portable).
Link: https://www.pronterface.com/

/!\ If you don't know which COMM port your print is linked, simply open your "Device Manager" and plug/unplug your printer to see it!

- Test commands
Even if, you will see the red color of it (if it is correctly connected) and the first down and up movement when you power it on, you can also check it manually:
  • M280 P0 S10 ;Pin down
  • M280 P0 S90 ;Pin up
  • M280 P0 S120 ;Test
  • M280 P0 S160 ;Release (you must do it to stop the Test command)
  • M280 P0 S10 ;Pin down (to let it ready)
- Setup and initial probing commands
You will have now to make your mesh to let your BLTouch know your bed placement, and be able to print as good as possible:
  • M502 ;Reset settings to configuration defaults
  • M500 ;Save current setup (WARNING: UBL will be active at power up, before any G28)
  • M501 ;Read back in the saved EEPROM (to prevent restart)
  • M851 X__YOUR_VALUE__ Y__YOUR_VALUE__ Z0 ;Set probe position (depends on yours, c.f: M851 X-48 Y-10 Z0) // Canan
  • G1 E-4 F300 ;Retract 4mm of filament at 300mm/s before lift the nozzle // Canan
  • M190 S60 ;Not required, but having the printer at temperature helps accuracy (PLA)
  • M104 S200 ;Not required, but having the printer at temperature helps accuracy (PLA)
  • G28 ;Home XYZ
  • G29 ;Do automated probing of the bed
  • M500 ;Save current setup
  • M501 ;Read back in the saved EEPROM (to prevent restart)
  • M503 ;To check the value
- Sample of my G29 result (with 4x4 grid)
  • 0 1 2 3
  • 0 -0.375 -0.328 +0.182 +0.424
  • 1 -0.266 -0.658 -0.578 +0.215
  • 2 +0.021 -0.390 -0.091 +0.160
  • 3 +0.277 -0.270 -0.400 -0.131
- Z Offset
  • M851 Z0 ;Reset your Z offset at 0
  • M190 S60 ;Not required, but having the printer at temperature helps accuracy (PLA)
  • M104 S200 ;Not required, but having the printer at temperature helps accuracy (PLA)
  • G28 ;Home XYZ (or simply G28 Z)
  • G1 X(BED_WIDTH / 2) Y(BED_DEPTH / 2) Z10 F5000 ;Move at center (for example: G1 X117.5 Y117.5 Z10 F5000 for an Ender 3 with 235x235mm bed)
  • M280 P0 S10 ;Pin down
  • -> Move down your Z axis (1mm by 1mm, then 0.1mm by 0.1mm) until the pin of probe will be go up automatically (so your __PROBE_VALUE__)!

  • /!\ If you are at Z0 and it is still too height, you have to disable (M211 S0) temporarily the ZStop functionality to be able to go in negative value, then renable it (M211 S1)!

  • -> Use a paper between your nozzle and your bed, and move down your Z axis nearly your bed (0.1mm by 0.1mm) until the paper can move but not easily (must be not blocked!) to have the __CURRENT_VALUE__

  • __NEW_VALUE__ = __PROBE_VALUE__ - __CURRENT_VALUE__
  • M851 Z__NEW_VALUE__ ;Set Z offset at __NEW_VALUE__ (the current Z value obtained)
  • M500 ;Save current setup
  • M501 ;Read back in the saved EEPROM (to prevent restart)

-> A negative Z offset value means the nozzle will go down!

/!\ If __CURRENT_VALUE__ = 0, you have nothing to do!

-> You can now put it in your firmware and update it!

- Start and end print script
You will have now to edit your start and end print script to include BLTouch check (and few useful tweaks).
- Start
  • M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
  • M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
  • M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
  • M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
  • M220 S100 ;Reset Feedrate
  • M221 S100 ;Reset Flowrate
  • G1 E-4 F300 ;Retract 4mm of filament at 300mm/s // Canan
  • G28 ;Home
  • G29 ;Bed levelling [Linear/Bilinear/Mesh] // Canan
  • G1 E0 F300 ;Reset Extruder at 300mm/s to cancel retractation // Canan
  • G92 E0 ;Reset Extruder
  • G1 Z2.0 F3000 ;Move Z Axis up
  • G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
  • G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
  • G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
  • G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
  • G92 E0 ;Reset Extruder
  • G1 Z2.0 F3000 ;Move Z Axis up
  • ;M300 S440 P200 ;Play a tone at 440Hz during 0.2s // Canan
  • M117 Ready ;Print a message on the LCD // Canan
- End
  • G4 ;Wait // Canan
  • G92 E0 ;Reset extruder // Canan
  • G91 ;Relative positioning
  • ;G1 E-2 F2700 ;Retract a bit
  • ;G1 E-2 Z0.2 F2400 ;Retract and raise Z
  • G1 E-4 F300 ;Retract 4mm of filament at 300mm/s before lift the nozzle // Canan
  • G1 Z10 F5000 ;Lifts the nozzle off of the print 10mm // Canan
  • G1 X5 Y5 F3000 ;Wipe out
  • G1 Z10 ;Raise Z more
  • G90 ;Absolute positioning
  • ;G1 X0 Y{machine_depth} ;Present print
  • G1 X0 Y200 ;Present the print // Canan
  • M106 S0 ;Turn-off fans
  • M104 S0 ;Turn-off hotend
  • M140 S0 ;Turn-off bed
  • ;M84 X Y E ;Disable all steppers except Z
  • M84 ;Disable motors (M17 to renable it) // Canan
  • ;M80 ;Power down main power supply // Canan
  • ;M300 S440 P200 ;Play a tone at 440Hz during 0.2s // Canan
  • M117 Finish ;Print a message on the LCD // Canan
- First layer calibration
You have to check if everything is good, so simply print a model test.
First_layer_calibration.stl
- Known issues

-> If everything works before, test to simple turn OFF your printer, be sure the pin of BLTouch is out, and turn it ON again.

If you have "Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)", if you don't have issue to pre-heat, it means the "thermistor" is correctly connected and is not damaged, otherwise you have to change it! Normally you don't have "thermistor" problem, so it is simply due to no constant or no connection at all from the White/Black cable coming out from the BLTouch to the Printers Z-Endstop Pins, so make sure the connection are perfect.

/!\ So the 2-pins black and white must be on z-axis place in correct sens!

Wiring_cables_(SKR_Mini_E3_v1.2).jpg
- Useful commands
  • M111 S247 ;Debug messages mode
  • M701 ;Load filament
  • M702 ;Unload filament


How to

[How to] Utiliser un BLTouch



- Mise à jour du firmware
J'utilise la version https://github.com/steenerson/Marlin_SKR_E3_Mini_12_512K/tree/bugfix-2.0.x-bltouch comme base

/!\ Dépend de l'emplacement de votre sonde, vous devez mettre à jour correctement votre marge de bord !

  • Ajouter juste après la ligne "#define NOZZLE_TO_PROBE_OFFSET" :
  • constexpr int nozzle_to_probe_offset[] = NOZZLE_TO_PROBE_OFFSET;
  • #define PROBE_X_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[0]
  • #define PROBE_Y_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[1]
  • Capteur à l'arrière droit :
  • #define MIN_PROBE_EDGE_LEFT abs(PROBE_X_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(PROBE_Y_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(MIN_PROBE_EDGE)
  • Capteur à l'arrière gauche :
  • #define MIN_PROBE_EDGE_LEFT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(PROBE_X_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(PROBE_Y_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(MIN_PROBE_EDGE)
  • Capteur à l'avant gauche :
  • #define MIN_PROBE_EDGE_LEFT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(PROBE_X_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(PROBE_Y_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • Capteur à l'avant droit :
  • #define MIN_PROBE_EDGE_LEFT abs(PROBE_X_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_RIGHT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_FRONT abs(MIN_PROBE_EDGE)
  • #define MIN_PROBE_EDGE_BACK abs(PROBE_Y_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
  • -> Faire un sondage sur la surface maximale du lit

- Console GCode
Comme Cura 3.x n'a plus de console pour pouvoir vérifier le retour de votre commande, vous devez utiliser Pronterface (gratuit et portable).
Lien : https://www.pronterface.com/

/!\ Si vous ne savez pas à quel port COMM votre impression est liée, ouvrez simplement votre "Gestionnaire de périphériques" et branchez/débranchez votre imprimante pour le voir !

- Commandes de test
Même si vous en verrez la couleur rouge (s'il est correctement connecté) et le premier mouvement de bas en haut lorsque vous l'allumez, vous pouvez également le vérifier manuellement :
  • M280 P0 S10 ;Descendrede la Pin
  • M280 P0 S90 ;Remonter la Pin
  • M280 P0 S120 ;Test
  • M280 P0 S160 ;Libération (vous devez le faire pour arrêter la commande Test)
  • M280 P0 S10 ;Descendre la Pin (pour le laisser prêt)
- Commandes de configuration et de sondage initial
Vous devrez maintenant faire votre maille pour que votre BLTouch connaisse l'emplacement de votre lit et pouvoir imprimer aussi bien que possible :
  • M502 ;Réinitialiser les paramètres aux paramètres de configuration par défaut
  • M500 ;Enregistrer la configuration actuelle (AVERTISSEMENT: UBL sera actif à la mise sous tension, avant tout G28)
  • M501 ;Relire dans l'EEPROM enregistrée (pour empêcher le redémarrage)
  • M851 X__VOTRE_VALEUR__ Y__VOTRE_VALEUR__ Z0 ;Définir la position de la sonde (dépend de la vôtre, c.f: M851 X-48 Y-10 Z0) // Canan
  • G1 E-4 F300 ;Rétractez 4 mm de filament à 300mm/s avant de soulever la buse // Canan
  • M190 S60 ;Non requis, mais avoir l'imprimante à température améliore la précision (PLA)
  • M104 S200 ;Non requis, mais avoir l'imprimante à température améliore la précision (PLA)
  • G28 ;Accueil XYZ
  • G29 ;Faire un sondage automatisé du lit
  • M500 ;Enregistrer la configuration actuelle
  • M501 ;Relire dans l'EEPROM enregistrée (pour empêcher le redémarrage)
  • M503 ;Pour vérifier la valeur
- Exemple de mon résultat G29 (avec une grille 4x4)
  • 0 1 2 3
  • 0 -0.375 -0.328 +0.182 +0.424
  • 1 -0.266 -0.658 -0.578 +0.215
  • 2 +0.021 -0.390 -0.091 +0.160
  • 3 +0.277 -0.270 -0.400 -0.131
- Décalage du Z
  • M851 Z0 ;Réinitialisez votre décalage Z à 0
  • M190 S60 ;Non requis, mais avoir l'imprimante à température améliore la précision (PLA)
  • M104 S200 ;Non requis, mais avoir l'imprimante à température améliore la précision (PLA)
  • G28 ;Accueil XYZ (ou simplement G28 Z)
  • G1 X(BED_LARGEUR / 2) Y(BED_PROFONDEUR / 2) Z10 F5000 ;Se déplacer au centre (par exemple: G1 X117.5 Y117.5 Z10 F5000 for an Ender 3 with 235x235mm bed)
  • M280 P0 S10 ;Descendre la Pin
  • -> Descendez votre Z axis (1mm par 1mm, puis 0.1mm par 0.1mm) jusqu'à ce que la broche de la sonde monte automatiquement (donc votre __SONDE_VALEUR__) !

  • /!\ Si vous êtes à Z0 et qu'il est encore trop haut, vous devez désactiver (M211 S0) temporairement la fonctionnalité ZStop pour pouvoir passer en valeur négative, puis la réactiver (M211 S1) !

  • -> Utilisez un papier entre votre buse et votre lit et descendez votre axe Z près de votre lit (0.1mm par 0.1mm) jusqu'à ce que le papier puisse bouger mais pas facilement (ne doit pas être bloqué!) pour avoir la __VALEUR_ACUTELLE__

  • __NOUVELLE_VALEUR__ = __SONDE_VALEUR__ - __VALEUR_ACUTELLE__
  • M851 Z__NOUVELLE_VALEUR__ ;Définir le décalage Z à __NOUVELLE_VALEUR__ (la valeur Z actuelle obtenue)
  • M500 ;Enregistrer la configuration actuelle
  • M501 ;Relire dans l'EEPROM enregistrée (pour empêcher le redémarrage)

-> Une valeur de décalage Z négative signifie que la buse descendra!

/!\ Si __VALEUR_ACUTELLE__ = 0, vous n'avez rien à faire !

-> Vous pouvez maintenant le mettre dans votre firmware et le mettre à jour !

- Script de démarrage et de fermeture d'impression
Vous devrez maintenant modifier votre script d'impression de début et de fin pour inclure la vérification BLTouch (et quelques ajustements utiles).
- Démarrage
  • M201 X500.00 Y500.00 Z100.00 E5000.00 ;Configurer l'accélération maximale de la machine
  • M203 X500.00 Y500.00 Z10.00 E50.00 ;Configuration de l'avance maximale de la machine
  • M204 P500.00 R1000.00 T500.00 ;Accélération de l'impression/du retrait/du déplacement
  • M205 X8.00 Y8.00 Z0.40 E5.00 ;Configuration de Jerk
  • M220 S100 ;Réinitialiser la vitesse d'avance
  • M221 S100 ;Réinitialiser le débit
  • G1 E-4 F300 ;Rétractez 4 mm de filament à 300mm/s // Canan
  • G28 ;Accueil
  • G29 ;Nivellement du lit [Linear/Bilinear/Mesh] // Canan
  • G1 E0 F300 ;Réinitialiser l'extrudeuse à 300mm/s pour annuler la rétractation // Canan
  • G92 E0 ;Réinitialiser l'extrudeuse
  • G1 Z2.0 F3000 ;Déplacer l'axe Z vers le haut
  • G1 X10.1 Y20 Z0.28 F5000.0 ;Déplacer vers la position de départ
  • G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Tracez la première ligne
  • G1 X10.4 Y200.0 Z0.28 F5000.0 ;Déplacez-vous un peu sur le côté
  • G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Tracez la deuxième ligne
  • G92 E0 ;Réinitialiser l'extrudeuse
  • G1 Z2.0 F3000 ;Déplacer l'axe Z vers le haut
  • ;M300 S440 P200 ;Jouez une tonalité à 440Hz pendant 0.2s // Canan
  • M117 Ready ;Imprimer un message sur l'écran LCD // Canan
- End
  • G4 ;Attendre // Canan
  • G92 E0 ;Réinitialiser l'extrudeuse // Canan
  • G91 ;Positionnement relatif
  • ;G1 E-2 F2700 ;Rentrez un peu
  • ;G1 E-2 Z0.2 F2400 ;Rentrer et lever Z
  • G1 E-4 F300 ;Rétractez 4 mm de filament à 300mm/s avant de soulever la buse // Canan
  • G1 Z10 F5000 ;Décolle la buse de l'impression 10mm // Canan
  • G1 X5 Y5 F3000 ;Anéantir
  • G1 Z10 ;Soulever davantage le Z
  • G90 ;Positionnement absolu
  • ;G1 X0 Y{machine_depth} ;Presentation de l'impression
  • G1 X0 Y200 ;Presentation de l'impression // Canan
  • M106 S0 ;Éteindre les ventilateurs
  • M104 S0 ;Arrêt du hotend
  • M140 S0 ;Arrêt du lit
  • ;M84 X Y E ;Désactiver tous les steppers sauf Z
  • M84 ;Désactiver les moteurs (M17 pour le réactiver) // Canan
  • ;M80 ;Couper l'alimentation principale // Canan
  • ;M300 S440 P200 ;Jouez une tonalité à 440Hz pendant 0.2s // Canan
  • M117 Finish ;Imprimer un message sur l'écran LCD // Canan
- Étalonnage de la première couche
Vous devez vérifier si tout va bien, il vous suffit donc d'imprimer un test de modèle.
First_layer_calibration.stl
- Problèmes connus

-> Si tout fonctionne avant, testez pour éteindre simplement votre imprimante, assurez-vous que la broche de BLTouch est sortie, puis rallumez-la.

Si vous avez "Corrigez l'erreur et utilisez M999 pour redémarrer. (La température est réinitialisée. Réglez-la après le redémarrage)", si vous n'avez pas de problème de préchauffage, cela signifie que la "thermistance" est correctement connectée et n'est pas endommagée. sinon vous devez le changer ! Normalement, vous n'avez pas de problème de "thermistance", donc c'est simplement dû à aucune connexion constante ou pas du tout du câble Blanc/Nnoir sortant du BLTouch aux broches Z-Endstop de l'imprimante, alors assurez-vous que la connexion est parfaite .

/!\ Donc, les 2 broches noir et blanc doivent être placées sur l'axe z dans le bon sens !

Wiring_cables_(SKR_Mini_E3_v1.2).jpg
- Commandes utiles
  • M111 S247 ;Mode messages de débogage
  • M701 ;Charge le filament
  • M702 ;Décharge le filament